Skip to content

feat: pre-compact-commit を opt-in 化し stash スナップショット方式に書換(#110、v0.60.0)#125

Merged
okash1n merged 1 commit into
mainfrom
issue/110-precompact-optin
Jun 12, 2026
Merged

feat: pre-compact-commit を opt-in 化し stash スナップショット方式に書換(#110、v0.60.0)#125
okash1n merged 1 commit into
mainfrom
issue/110-precompact-optin

Conversation

@okash1n

@okash1n okash1n commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

概要

LLM 性能監査計画 #121 の P1-04(#110)。PreCompact での git add -A 自動コミットを、全プロファイル opt-in の stash スナップショットに置き換える。

変更内容

  • 既定 OFF 化: standard / full の ENABLE_PRE_COMPACT_COMMIT を false に(minimal は元から false)。現行 Claude Code はネイティブ checkpoint / rewind を備え、compaction でファイルは失われないため、既定有効の利益より git add -A の害(untracked 機微ファイル巻き込み・checkpoint コミットの履歴汚染・squash 時の混入)が上回る
  • stash 方式へ書換: git stash create + git stash store -m 'pre-compact snapshot'。ブランチ履歴にコミットを作らず、作業ツリー・ステージ・untracked に一切触れない。復元は git stash apply。rebase コンフリクト中などに stash create が異常出力を返すケースに備えた hex プレフィックスガード付き
  • ユーザー保護: 保存済み config で明示的に有効化済みのユーザーは update / wizard 再実行で上書きされない(_load_profile_preserving_values / load_config 経路で確認)。feature-recommendation の再通知も発生しない(flag 非空のため pending 対象外)
  • 表示名「Pre-compact Snapshot」へ変更、README ja/en・docs・i18n・テスト(静的ガード + 実行フィクスチャ)を追随

検証

  • 実機: 変更ありで stash 1 件・untracked 不干渉・コミット数不変・exit 0 / クリーンツリーで stash 0 件・exit 0 / hex ガード後も正常動作
  • shellcheck green / unit 339/339 / scenarios 44 Pass + 1 Skip
  • 内部レビュー(code-reviewer agent): medium 1 件(rebase コンフリクト時の stash create 異常出力)→ hex ガードで修正、low 1 件(フォールバック文字列の旧称)→ 修正

Closes #110

- standard/full の既定を false に変更(全プロファイル opt-in。保存済み config の明示的有効化は維持)
- git add -A + commit を廃止し git stash create/store へ(履歴汚染・untracked 巻き込みを解消)
- stash create の異常出力を弾く hex プレフィックスガード付き
- 表示名を Pre-compact Snapshot に変更、README/docs/i18n/テストを追随

Closes #110
Copilot AI review requested due to automatic review settings June 12, 2026 01:11

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

PreCompact 時に git add -A && git commit を作っていた pre-compact-commit を、全プロファイル既定 OFF の opt-in に変更し、ブランチ履歴を汚さない git stash create/store ベースの「snapshot」方式へ置き換える PR です(#110 / v0.60.0)。現行 Claude Code の native checkpoint/rewind 前提では、既定有効の副作用(untracked 巻き込み・履歴汚染)が勝つため、それを解消する方向の変更になっています。

Changes:

  • standard/full の ENABLE_PRE_COMPACT_COMMITfalse に変更し、feature 側の profile default も全て false に統一(opt-in 化)
  • PreCompact 実装を git stash create + git stash store -m 'pre-compact snapshot' に置換し、コミット作成と git add -A を撤廃
  • 表示名/ドキュメント/i18n/ユニットテスト・フィクスチャを新仕様(snapshot)に追随

Reviewed changes

Copilot reviewed 14 out of 14 changed files in this pull request and generated no comments.

Show a summary per file
File Description
wizard/registry.sh フック選択 UI の表示名を「Pre-compact Snapshot」に更新
tests/unit/test-runtime-hooks.sh PreCompact コマンドが stash create/store 方式であることを静的に検証するテストへ更新
tests/unit/test-hook-fixtures.sh 実行フィクスチャを stash スナップショット挙動(stash 生成・履歴不変・worktree 不変)に合わせて更新
README.md 日本語 README の機能説明を snapshot(opt-in)前提に書き換え
README.en.md 英語 README の hooks 説明を snapshot(opt-in)前提に更新
profiles/standard.conf standard の既定を ENABLE_PRE_COMPACT_COMMIT=false に変更
profiles/full.conf full の既定を ENABLE_PRE_COMPACT_COMMIT=false に変更
i18n/ja/strings.sh 日本語のフック説明文言を snapshot に更新
i18n/en/strings.sh 英語のフック説明文言を snapshot に更新
features/pre-compact-commit/hooks.json PreCompact 実装を stash create/store に置換(コミット作成を廃止)
features/pre-compact-commit/feature.json displayName/description と profiles default を opt-in(全 profile false)に更新
docs/wizard-config-mapping.md 日本語の config マッピング説明を snapshot/opt-in 前提に更新
docs/wizard-config-mapping.en.md 英語の config マッピング説明を snapshot/opt-in 前提に更新
CHANGELOG.md v0.60.0 の変更点として opt-in 化 + stash 方式への移行を追記

@okash1n okash1n merged commit 845b2f8 into main Jun 12, 2026
12 checks passed
@okash1n okash1n deleted the issue/110-precompact-optin branch June 12, 2026 01:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[P1-04] pre-compact-commit の opt-in 化と実装見直し

2 participants